/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gui;

import java.awt.Color;
import javax.swing.JLabel;
import logic.Cronometro;

/**
 *
 * @author Mary
 */
public class PanelCronometro extends javax.swing.JPanel {

    private WorkerCronometro hilo;               //Hilo usado para el cronometro
    private Cronometro cronometro;
    private boolean cronometroActivo;  //Para desactivar o activar el cronometro
    private int goleslocales;
    private int golesvisitantes;

    class WorkerCronometro extends Thread {

        public void run() {
            while (cronometroActivo) {
                String minutos, segundos, milisegundos;
                cronometro.calcular();
                minutos = String.valueOf(cronometro.minutos());
                segundos = String.valueOf(cronometro.segundos());
                milisegundos = String.valueOf(cronometro.milisegundos());
                tiempo.setText(minutos + ":" + segundos + ":" + milisegundos.substring(0, Math.min(milisegundos.length(), 3)));
                getParent().repaint();
            }
        }
    }   

    /**
     * Creates new form PanelCronometro
     */
    public PanelCronometro() {
        initComponents();
        goleslocales=0;
        golesvisitantes=0;
        cronometro = new Cronometro();
        tiempo.setText("00:00:000");
        tiempo.setHorizontalAlignment(JLabel.CENTER);
        tiempo.setForeground(Color.BLUE);
        tiempo.setBackground(Color.WHITE);
        tiempo.setOpaque(true);
    }

    /**
     * Iniciar el cronometro poniendo cronometroActivo 
    en verdadero para que entre en el while 
     */
    public Cronometro getCronometro(){
        return this.cronometro;
    }
    
    public void iniciarCronometro() {        
        hilo = new WorkerCronometro();
        cronometroActivo = true;        
        cronometro.iniciar();
        hilo.start();        
    }

    public void pararCronometro() {
        cronometroActivo = false;
        hilo = new WorkerCronometro();
        cronometro.detener();        
    }

    /**
     * Continua el curso del cronómetro
     */
    public void continuarCronometro() {
        cronometroActivo = true;        
        hilo.start();
        cronometro.reanudar();
    }

    /**
     * Retorna el label de goles Local
     */
    public JLabel getLabelGolesLocal() {
        return LabelGolesLocal;
    }

    /**
     * Retorna el label de goles Visitante
     */
    public JLabel getLabelGolesVisitante() {
        return LabelGolesVisitante;
    }

    /**
     * Retorna el label del Nombre Local
     */
    public JLabel getLabelNombreLocal() {
        return LabelNombreLocal;
    }

    /**
     * Retorna el label del nombre Visitante
     */
    public JLabel getLabelNombreVisitante() {
        return LabelNombreVisitante;
    }
    
        /**
     * Modofica los goles del equipo visitante, no recibe parametros ya que en el
     * panel cronometro hay un contador para goles de los visitantes
     */
    public void setGolesVisitanes () {
        this.golesvisitantes ++;
        this.LabelGolesVisitante.setText(this.golesvisitantes + "");
}
    
    
      /**
     * Modofica los goles del equipo local, no recibe parametros ya que en el
     * panel cronometro hay un contador para goles de los locales
     */
    public void setGolesLocales () {
        this.goleslocales ++;
        this.LabelGolesLocal.setText(this.goleslocales + "");
}
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        LabelNombreLocal = new javax.swing.JLabel();
        LabelGolesLocal = new javax.swing.JLabel();
        jPanel3 = new javax.swing.JPanel();
        LabelNombreVisitante = new javax.swing.JLabel();
        LabelGolesVisitante = new javax.swing.JLabel();
        jPanel2 = new javax.swing.JPanel();

        setBackground(new java.awt.Color(255, 255, 255));
        setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 51), 4));

        LabelNombreLocal.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        LabelNombreLocal.setForeground(new java.awt.Color(0, 0, 51));
        LabelNombreLocal.setText("ESP");

        LabelGolesLocal.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        LabelGolesLocal.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        LabelGolesLocal.setText("0");

        jPanel3.setBackground(new java.awt.Color(0, 0, 51));

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 4, Short.MAX_VALUE)
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 0, Short.MAX_VALUE)
        );

        LabelNombreVisitante.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        LabelNombreVisitante.setForeground(new java.awt.Color(0, 0, 51));
        LabelNombreVisitante.setText("BRA");

        LabelGolesVisitante.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
        LabelGolesVisitante.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        LabelGolesVisitante.setText("0");

        jPanel2.setBackground(new java.awt.Color(0, 0, 51));

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 4, Short.MAX_VALUE)
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 30, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(LabelNombreLocal)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(LabelGolesLocal, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(10, 10, 10)
                .addComponent(LabelNombreVisitante)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(LabelGolesVisitante, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, Short.MAX_VALUE)
                .addComponent(tiempo, javax.swing.GroupLayout.PREFERRED_SIZE, 157, javax.swing.GroupLayout.PREFERRED_SIZE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(tiempo, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addComponent(LabelNombreLocal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(LabelGolesLocal, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(LabelNombreVisitante, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(LabelGolesVisitante, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );
    }// </editor-fold>//GEN-END:initComponents
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel LabelGolesLocal;
    private javax.swing.JLabel LabelGolesVisitante;
    private javax.swing.JLabel LabelNombreLocal;
    private javax.swing.JLabel LabelNombreVisitante;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private final javax.swing.JLabel tiempo = new javax.swing.JLabel();
    // End of variables declaration//GEN-END:variables
}
